package com.tgr.shortLink.project.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.tgr.shortLink.project.common.convention.result.Result;
import com.tgr.shortLink.project.common.convention.result.Results;
import com.tgr.shortLink.project.dto.req.LinkStatsAccessRecordReqDTO;
import com.tgr.shortLink.project.dto.req.LinkStatsReqDTO;
import com.tgr.shortLink.project.dto.resp.LinkStatsAccessRecordRespDTO;
import com.tgr.shortLink.project.dto.resp.LinkStatsRespDTO;
import com.tgr.shortLink.project.service.LinkStatsService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 描述：短链接监控控制层
 * 作者：小陶不慌张
 * 文件：LinkStatsController
 * 日期：2024/1/29 16:24
 */
@RestController
@RequiredArgsConstructor
public class LinkStatsController {
    private final LinkStatsService linkStatsService;
    /**
     * 访问单个短链接指定时间内监控数据
     */
    @GetMapping("/api/short-link/v1/stats")
    public Result<LinkStatsRespDTO> shortLinkStats(LinkStatsReqDTO requestParam) {
        return Results.success(linkStatsService.oneShortLinkStats(requestParam));
    }
    /**
     * 单个短链接指定时间内访问记录监控数据
     */
    @GetMapping("/api/short-link/v1/stats/access-record")
    public Result<IPage<LinkStatsAccessRecordRespDTO>> shortLinkStatsAccessRecord(LinkStatsAccessRecordReqDTO requestParam) {
        return Results.success(linkStatsService.linkStatsAccessRecord(requestParam));
    }
}
